<?php

 
class LoginHandler {
 
        private $loginSession ="loginSession";
		
		private $m_db = NULL;
        
        public function __construct(Database $db) {
                $this->m_db =$db;
        }
		
 
        public function IsLoggedIn() {
        	//returnerar true om vi är inloggade annars false
        	if(isset($_SESSION[$this->loginSession])==true) {
        		//Ser om det finns sparade cookies och försöker isåfall logga in med de uppgifterna
				if (isset($_COOKIE["username"]) && isset($_COOKIE["password"])){
					if($this->DoLogin($_COOKIE["username"], $_COOKIE["password"])){
						
					}
				}
        		return true;
			}
			else {
				return false;
			}
			
		}
 		
	
        public function DoLogin($username, $password){
        	
			$sql = "SELECT * FROM user WHERE m_username=? AND m_password=?";
	  			
			$stmt = $this->m_db->Prepare($sql);
			
            $stmt -> bind_param("si", $username, $password);
			
			if ($this->m_db->ControlUser($stmt)==TRUE){
				$_SESSION[$this->loginSession] = true;
				return true;
			}
			return false;
        	
            
        }
 
        public function DoLogout(){
        	unset($_SESSION[$this->loginSession]);
        }
 
        public function Test() {
               //2.sätter oss i ett utloggat tillstånd genom att anropa DoLogout
               $this->DoLogout();
			   
			   //3.Test IsLoggedIn
			   if ($this-> IsLoggedIn() == true){
			   	echo "Test 3 misslyckades";
				   return false;
			   }
               
               //4.Test DoLogin med felaktiga uppgifter
			   if ($this-> DoLogin("Patrick", "7777") == true){
			   	echo "Test 4 misslyckades";
				   return false;
			   }
			   
			   //5.Test DoLogin med rätta uppgifter
			   if ($this-> DoLogin("Stina", "godmorgon") == false){
			   	echo "Test 5 misslyckades";
				   return false;
			   }
			   
			   //6.Kontrollerar om vi är inloggade
			   if ($this->IsLoggedIn() == false){
			   	echo "Test 6 misslyckades";
				   return false;
			   }
               
               //7. Logga ut
			   $this->DoLogout();
			   
			   //8.Test DoLogin med rätt användarnamn och fel lösenord
			   if ($this-> DoLogin("Stina", "7777") == true){
			   	echo "Test 8 misslyckades";
				   return false;
			   }
			   
			   return true;
			   
			   
        }
}